import SecureLS from "secure-ls";

const ls = new SecureLS({
  isCompression: false, // 是否压缩
  encodingType: "base64", // 加密方式
  encryptionSecret: null, // 这个地方使用自己自定义的加密字符串
});

export default {
  /**
   * @description 设置值
   * @param {*} key
   * @param {*} data
   * @param {*} datetime
   * @returns
   */
  set(key, data, datetime = 0) {
    let cacheValue = {
      content: data,
      datetime: parseInt(datetime) === 0 ? 0 : new Date().getTime() + parseInt(datetime) * 1000,
    };
    ls.set(key, JSON.stringify(cacheValue)); // 加密存储
  },

  /**
   * @description 获取值
   * @param {*} key
   * @returns
   */
  get(key) {
    try {
      const value = JSON.parse(ls.get(key));
      if (value) {
        let nowTime = new Date().getTime();
        if (nowTime > value.datetime && value.datetime != 0) {
          localStorage.removeItem(key);
          return null;
        }
        return value.content;
      }
      return null;
    } catch (err) {
      return null;
    }
  },
  /**
   * @description 获取本地存储
   * @param {*} key
   * @returns
   */
  remove(key) {
    return localStorage.removeItem(key);
  },
  /**
   * @description 清空本地存储并同步到内存
   * @returns
   */
  clear() {
    return localStorage.clear();
  },
};
